import tkinter as tk

class ToolTip:
    """
    一个简单的悬浮提示（Tooltip）实现，用于鼠标悬停时显示文字。
    """

    def __init__(self, widget, text=""):
        self.widget = widget
        self.text = text
        self.tooltip_window = None

        self.widget.bind("<Enter>", self.show_tooltip)
        self.widget.bind("<Leave>", self.hide_tooltip)

    def show_tooltip(self, event=None):
        if self.tooltip_window or not self.text:
            return
        # 创建一个无边框顶级窗口
        self.tooltip_window = tw = tk.Toplevel(self.widget)
        tw.wm_overrideredirect(True)  # 去掉边框
        tw.wm_geometry(f"+{event.x_root + 10}+{event.y_root + 10}")  # 在鼠标附近显示

        label = tk.Label(tw, text=self.text, background="#FFFFE0", relief="solid", borderwidth=1)
        label.pack()

    def hide_tooltip(self, event=None):
        if self.tooltip_window:
            self.tooltip_window.destroy()
        self.tooltip_window = None

    def set_text(self, text):
        """更新提示文本"""
        self.text = text 